Manejando Docker ( Primera Parte )

Voy a lanzar algunos de los comandos típicos en Docker que son necesarios para poder manejarlo correctamente y la respuesta que debe dar.

docker search <image>: Sirve para buscar una imagen en el registro
alberto@ansible-master:~$ docker search ubuntu
NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                                       Ubuntu is a Debian-based Linux operating s...   5878      [OK]
rastasheep/ubuntu-sshd                       Dockerized SSH service, built on top of of...   80                   [OK]
ubuntu-upstart                               Upstart is an event-based replacement for ...   71        [OK]
ubuntu-debootstrap                           debootstrap --variant=minbase --components...   30        [OK]
torusware/speedus-ubuntu                     Always updated official Ubuntu docker imag...   27                   [OK]
nuagebec/ubuntu                              Simple always updated Ubuntu docker images...   19                   [OK]
nickistre/ubuntu-lamp                        LAMP server on Ubuntu                           16                   [OK]
nimmis/ubuntu                                This is a docker images different LTS vers...   7                    [OK]
darksheer/ubuntu                             Base Ubuntu Image -- Updated hourly             2                    [OK]
admiringworm/ubuntu                          Base ubuntu images based on the official u...   1                    [OK]
jordi/ubuntu                                 Ubuntu Base Image                               1                    [OK]
labengine/ubuntu                             Images base ubuntu                              0                    [OK]
webhippie/ubuntu                             Docker images for ubuntu                        0                    [OK]
vcatechnology/ubuntu                         A Ubuntu image that is updated daily            0                    [OK]
forumi0721ubuntux64/ubuntu-x64-dev           ubuntu-x64-dev                                  0                    [OK]
datenbetrieb/ubuntu                          custom flavor of the official ubuntu base ...   0                    [OK]
konstruktoid/ubuntu                          Ubuntu base image                               0                    [OK]
forumi0721ubuntuarmhf/ubuntu-armhf-dev       ubuntu-armhf-dev                                0                    [OK]
forumi0721ubuntuaarch64/ubuntu-aarch64-dev   ubuntu-aarch64-dev                              0                    [OK]
lynxtp/ubuntu                                https://github.com/lynxtp/docker-ubuntu         0                    [OK]
teamrock/ubuntu                              TeamRock's Ubuntu image configured with AW...   0                    [OK]
forumi0721ubuntux64/ubuntu-x64-dev-armbian   ubuntu-x64-dev-armbian                          0                    [OK]
forumi0721ubuntux64/ubuntu-x64-dev-android   ubuntu-x64-dev-android                          0                    [OK]
esycat/ubuntu                                Ubuntu LTS                                      0                    [OK]
smartentry/ubuntu                            ubuntu with smartentry                          0                    [OK]
docker pull <image>: descarga una imagen del registro a la maquina local
alberto@ansible-master:~$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu

c62795f78da9: Pull complete
d4fceeeb758e: Pull complete
5c9125a401ae: Pull complete
0062f774e994: Pull complete
6b33fd031fac: Pull complete
Digest: sha256:c2bbf50d276508d73dd865cda7b4ee9b5243f2648647d21e3a471dd3cc4209a0
Status: Downloaded newer image for ubuntu:latest
docker images: muestra las imagenes docker disponibles en la maquina local
alberto@ansible-master:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              6a2f32de169d        5 days ago          117.2 MB
hello-world         latest              48b5124b2768        3 months ago        1.84 kB
alberto@ansible-master:~$
 docker run -i -t <image>: permite lanzar un contenedor basado en una imagen existente.

Si la imagen no existe se la descarga del registro.

-t flag asigna un terminal dentro del contenedor.
-i flag permite una conexión interactiva.

También se puede correr como: docker run -it <image>

alberto@ansible-master:~$ docker run -i -t ubuntu /bin/bash
root@75d9945fad6b:/# uname -a
Linux 8ff6b99beccb 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
 docker ps: permite ver los procesos que estan corriendo actualmente dentro de los diferentes contenedores
alberto@ansible-master:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9c0b81da7c9b        ubuntu              "/bin/bash"         14 seconds ago      Up 13 seconds                           ecstatic_swartz

Hasta la próxima!

 


Primeros pasos con Docker tras un Proxy

Introducción

Hay millones de artículos explicando Docker, que son los contenedores y como hacerlos funcionar. En estos artículos el objetivo es hacer una pequeña guía de como realizar algunas tareas que tal vez no estén claras o requieran ejemplos para mejorar la comprensión.

Continue Reading


Manejando Docker ( Segunda Parte )

Bien, vamos a continuar probando cosas ahora que ya hemos conseguido tener una imagen funcionando.

Comprobamos las imágenes que tenemos disponibles:

alberto@ansible-master:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              6a2f32de169d        5 days ago          117.2 MB
hello-world         latest              48b5124b2768        3 months ago        1.84 kB
 docker tag <image> <name>: Sirve para dar una etiqueta a una imagen instalada.

Es interesante definir una etiqueta personalizada que haga referencia a una imagen instalada en su sistema. Esto puede venir bien para tener un poco más de organización cuando se utilizan muchas imágenes, más cuando son del mismo sistema.

alberto@ansible-master:~$ docker tag 48b5124b2768 hola-mundo

Verificamos:

alberto@ansible-master:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sysbench            latest              2961caa2662b        4 hours ago         127.4 MB
pwgen               latest              7de10fd8ab39        4 hours ago         4.849 MB
alberto             test                7f434c386b9e        2 days ago          97.34 MB
ubuntu              alberto             a47c7de1ccb6        2 days ago          121.3 MB
ubuntu              latest              6a2f32de169d        7 days ago          117.2 MB
debian              jessie              8cedef9d7368        4 weeks ago         123.4 MB
alpine              3.4                 245f7a86c576        6 weeks ago         4.807 MB
hello-world         latest              48b5124b2768        3 months ago        1.84 kB
hola-mundo          latest              48b5124b2768        3 months ago        1.84 kB
 docker start <image>:  Sirve para arrancar un contenedor
alberto@ansible-master:~$ docker start ac7b774bb732
ac7b774bb732
docker stop <container>: Sirve para parar un contenedor
alberto@ansible-master:~$ docker stop ac7b774bb732
ac7b774bb732
docker commit <container> <image>: Sirve para guardar un contenedor como una imagen
alberto@ansible-master:~$ docker commit ac7b774bb732 ubuntu:alberto
sha256:4eec2299f8415d4d7f88171919c3f09e9ed85754e1f3ba40e81a3dde8d23ac39

Comprobamos:

alberto@ansible-master:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              alberto             4eec2299f841        7 seconds ago       117.2 MB
sysbench            latest              2961caa2662b        5 hours ago         127.4 MB
pwgen               latest              7de10fd8ab39        5 hours ago         4.849 MB
alberto             test                7f434c386b9e        2 days ago          97.34 MB
<none>              <none>              a47c7de1ccb6        2 days ago          121.3 MB
ubuntu              latest              6a2f32de169d        7 days ago          117.2 MB
debian              jessie              8cedef9d7368        4 weeks ago         123.4 MB
alpine              3.4                 245f7a86c576        6 weeks ago         4.807 MB
hola-mundo          latest              48b5124b2768        3 months ago        1.84 kB
hello-world         latest              48b5124b2768        3 months ago        1.84 kB
docker save <image> > <dir>: Sirve para exportar la imagen a fichero
alberto@ansible-master:~$ docker save ubuntu:alberto  > /tmp/ubuntu.alberto.tar

Comprobamos:

alberto@ansible-master:~$ tar tvf /tmp/ubuntu.alberto.tar
-rw-r--r-- 0/0 3483 2016-04-20 16:55 4eec2299f8415d4d7f88171919c3f09e9ed85754e1f3ba40e81a3dde8d23ac39.json
drwxr-xr-x 0/0 0 2016-04-20 16:55 74f82876bc3a2bcd96640d7473dff037fe99bae07c7dd9ad142a2fd2178968fe/
-rw-r--r-- 0/0 3 2016-04-20 16:55 74f82876bc3a2bcd96640d7473dff037fe99bae07c7dd9ad142a2fd2178968fe/VERSION
-rw-r--r-- 0/0 388 2016-04-20 16:55 74f82876bc3a2bcd96640d7473dff037fe99bae07c7dd9ad142a2fd2178968fe/json
-rw-r--r-- 0/0 121239552 2016-04-20 16:55 74f82876bc3a2bcd96640d7473dff037fe99bae07c7dd9ad142a2fd2178968fe/layer.tar
drwxr-xr-x 0/0 0 2016-04-20 16:55 7fb54cf7f1a5ab16942b4461ecfd51ab4d2a08613e00dc58832ced0233c0eef6/
-rw-r--r-- 0/0 3 2016-04-20 16:55 7fb54cf7f1a5ab16942b4461ecfd51ab4d2a08613e00dc58832ced0233c0eef6/VERSION
-rw-r--r-- 0/0 464 2016-04-20 16:55 7fb54cf7f1a5ab16942b4461ecfd51ab4d2a08613e00dc58832ced0233c0eef6/json
-rw-r--r-- 0/0 15872 2016-04-20 16:55 7fb54cf7f1a5ab16942b4461ecfd51ab4d2a08613e00dc58832ced0233c0eef6/layer.tar
drwxr-xr-x 0/0 0 2016-04-20 16:55 982c5bfe381b11e583cbc1d1f0aedef4143f8ef28707e729f03c7fe88a6e5475/
-rw-r--r-- 0/0 3 2016-04-20 16:55 982c5bfe381b11e583cbc1d1f0aedef4143f8ef28707e729f03c7fe88a6e5475/VERSION
-rw-r--r-- 0/0 464 2016-04-20 16:55 982c5bfe381b11e583cbc1d1f0aedef4143f8ef28707e729f03c7fe88a6e5475/json
-rw-r--r-- 0/0 5632 2016-04-20 16:55 982c5bfe381b11e583cbc1d1f0aedef4143f8ef28707e729f03c7fe88a6e5475/layer.tar
drwxr-xr-x 0/0 0 2016-04-20 16:55 e284a9bc939e269d3cadbd9adeb222380b763569a51c43c956994f4dc263fbdd/
-rw-r--r-- 0/0 3 2016-04-20 16:55 e284a9bc939e269d3cadbd9adeb222380b763569a51c43c956994f4dc263fbdd/VERSION
-rw-r--r-- 0/0 1043 2016-04-20 16:55 e284a9bc939e269d3cadbd9adeb222380b763569a51c43c956994f4dc263fbdd/json
-rw-r--r-- 0/0 3072 2016-04-20 16:55 e284a9bc939e269d3cadbd9adeb222380b763569a51c43c956994f4dc263fbdd/layer.tar
drwxr-xr-x 0/0 0 2016-04-20 16:55 f848e53091079995d62b1ce5980bc17b04a337a9f02819dd452e28fa22f4b819/
-rw-r--r-- 0/0 3 2016-04-20 16:55 f848e53091079995d62b1ce5980bc17b04a337a9f02819dd452e28fa22f4b819/VERSION
-rw-r--r-- 0/0 464 2016-04-20 16:55 f848e53091079995d62b1ce5980bc17b04a337a9f02819dd452e28fa22f4b819/json
-rw-r--r-- 0/0 11776 2016-04-20 16:55 f848e53091079995d62b1ce5980bc17b04a337a9f02819dd452e28fa22f4b819/layer.tar
-rw-r--r-- 0/0 511 1970-01-01 01:00 manifest.json
-rw-r--r-- 0/0 90 1970-01-01 01:00 repositories

 docker load < <file>: Permite importar un fichero y registrarlo como imagen
alberto@ansible-master:~$ docker load < /tmp/ubuntu.alberto.tar
Loaded image: ubuntu:alberto
 docker rmi <nombre>: Permite borrar una imagen del registro local
alberto@ansible-master:~$ docker rmi hola-mundo
Untagged: hola-mundo:latest

También puede usarse el <IMAGE ID> para definir la imagen a borrar

alberto@ansible-master:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              alberto             4eec2299f841        6 minutes ago       117.2 MB
sysbench            latest              2961caa2662b        5 hours ago         127.4 MB
pwgen               latest              7de10fd8ab39        5 hours ago         4.849 MB
alberto             test                7f434c386b9e        2 days ago          97.34 MB
<none>              <none>              a47c7de1ccb6        2 days ago          121.3 MB
alberto@ansible-master:~$ docker rmi a47c7de1ccb6
Deleted: sha256:a47c7de1ccb68335b874e872e7209e8e571a26928c2467463e3591a4beb47217
Deleted: sha256:30225fffea5bbe3d85ed2d48fc60d12201a3425cdaea194a9399e9febfaa5e02